In a three-dimensional computer graphics image display, it is often desirable to remove lines which are obscured, or hidden from a viewer by an object which is closer to the surface of the display screen. This object may be invisible, as in a wire frame diagram. The line which is considered to be deeper than an obscuring object must be displayed such that the deeper line is either displayed differently, or cannot be seen by a user of the computer graphics system.
Typically, these hidden lines are removed using a multiple pass method, such as is described by U.S. Pat. No. 4,855,938 to Gonzalez-Lopez et al and assigned to IBM Corporation. The first pass of the multiple pass process must be completed for each specific polygon included in the entire image before any successive passes can be performed. Thus, multiple pass processes of hidden line removal require that each polygon within an image (scene) be the subject of multiple operations prior to any polygon being completely rendered, i.e. painted or drawn. A conventional multiple pass method of hidden line removal includes three steps: loading the z-buffer; painting all lines as hidden lines (with hidden line colors); and painting all lines at the same level of the z-buffer as visible lines (with visible line colors).
It can be seen that successively considering each specific polygon in an image at each pass of a multiple step process is an extremely inefficient method which requires three full passes through the data file, which is very expensive if the data is not in memory. Therefore, it would be desirable to have a hidden line removal process which is capable of completely and totally painting, in a single pass, a specific polygon, included within an image to be displayed in a computer graphics system.